curve generaion